package loot;

import util.Func;
import util.util.Hist;

public class PouchTable extends LootTable {

	private Hist<String>	pass1 = new Hist<String>();
	
	public final Hist<String>	getLoot(int level) {
		//
		// Given the roll of R = 1d20 + level this is the result
		//
		Hist<String>	LL = new Hist<String>();

		addCommonCoins(	pass1.get("addCommonCoins").intValue(),		LL);
		addRareCoins(	pass1.get("addRareCoins").intValue(),		LL);
		addGemsAndArt(	pass1.get("addGemsAndArt").intValue(),		LL);
		addMagicItems(	pass1.get("addMagicItems").intValue(),		LL);
		
		return LL;
	}

	public void addCommonCoins(int R, Hist<String> LL) {
		if (R >= 7 && R <= 13)		{	LL.add("copper pieces", Func.roll(5,6));	}
		if (R >= 14)				{	LL.add("silver pieces", Func.roll(4,6));	}
	}
	public void addRareCoins(int R, Hist<String> LL) {
		if (R >= 13 && R <= 14)		{	LL.add("electrum pieces", Func.roll(3,6));	}
		if (R >= 15 && R <= 22)		{	LL.add("gold pieces", Func.roll(2,6));		}
		if (R >= 23)				{	LL.add("platinum pieces", Func.roll(6));	}
	}
	public void addGemsAndArt(int R, Hist<String> LL) {
		if (R >= 17 && R <= 21)		{	LL.add("ornamental gems", Func.roll(6));	}
		if (R >= 22 && R <= 26)		{	LL.add("semiprecious gems", Func.roll(6));	}
		if (R >= 32 && R <= 36)		{	LL.add("precious gems", Func.roll(3));		}
		if (R >= 37)				{	LL.add("fine art object", 1);				}
	}
	public void addMagicItems(int R, Hist<String> LL) {
		if (R >= 18 && R <= 23)		{	LL.add("common potion", Func.roll(3));		}
		if (R >= 24 && R <= 27)		{	LL.add("uncommon magic item", 1);			}
		if (R >= 28 && R <= 29)		{	LL.add("rare magic item", 1);				}
		if (R >= 30)				{	LL.add("very rare magic item", 1);			}
	}
	
	@Override
	public void makeRolls() {
		pass1.put("addCommonCoins",	Func.roll(20));
		pass1.put("addRareCoins", 	Func.roll(20));
		pass1.put("addGemsAndArt", 	Func.roll(20));
		pass1.put("addMagicItems", 	Func.roll(20));
	}
}
